import matplotlib.pyplot as plt
#注意与dataframe.plot方法的区别

#一、折线图：某个指标随时间变化
#1、准备数据
x = [1,2,3,4,5,6,7,8,9,10] #时间
y_shanghai=[15,23,23,43,14,18,20,21,20,23]
y_beijing=[15,13,13,13,14,18,20,21,20,22]
#2、创建画布
plt.figure(figsize=(20,8),dpi=80)
#figsize:画布长宽
#dpi:清晰度
plt.savefig(path) #不能写在plt.show()后面
#3、绘制图像plot折线图
plt.plot(x,y_shanghai,color='r',linestyle='--',label='上海')
#color：r、g、b、w、c青色、m洋红、k黑色、y
#linestyle：-- 虚线；- 实线；-. 点划线；. 虚线
#label：左上角标识 配合 plt.legend()显示
plt.plot(x,y_beijing)#两个直线图
#修改x、y轴刻度 并且 对每个刻度铺开说明
plt.yticks(range(40)[::2])#y轴刻度0-40 并且 step=2

x_label=[f'11点{i}' for i in x] #创建x_label于x轴刻度一致
plt.xticks(x[::2],x_label[::2])#重新布置一遍x轴刻度标题
#添加x轴标题
plt.xlabel('x轴标题',fontweight='bold',fontsize=10)
#添加总标题
plt.title('这是总标题',fontweight='bold',fontsize=16)
#添加网格显示
plt.grid(linestyle='--',alpha=5)
#显示左上标记
plt.legend(loc='best')#默认右上显示loc:upper right、lower left、center left
#4、显示图像
plt.savefig(path) #不能写在plt.show()后面
plt.show()

#二、散点图：两个变量是否有规律，关系\规律
plt.scatter(x,y)

#三、柱状图：数据大小，同比（关键x轴移动）
#1、准备数据
move_name=['正义者联盟','雷神','蝙蝠侠']
first_day=[200,500,321]#第一天票房
first_weekend=[3000,2341,6548]#一周结束票房
#2、创建画布
plt.figure(figsize=(20,8),dpi=80)
#3、绘制图像bar柱状图
#准备x轴(重点)
x=range(len(move_name))
#画两张图第一天票房、一周结束票房
plt.bar(x,first_day,width=0.2,label='首日票房')
#注意这里width 0.2 下面需要便宜0.2位置
plt.bar([i+0.2 for i in x],first_weekend,width=0.2,label='首周票房')
#修改x轴刻度显示
plt.xticks([i+0.2 for i in x],move_name)
#x轴刻度45°显示?未测试
ax=plt.gca()
ax.set_xticklabels(move_name,rotation=45)

#四、直方图：标识一组数据分布规律情况，数据分布状态 x轴有意义bins可以调节（关键bins组合）
#1、准备数据
time=[131,98,125,131,124,334,109,189,109,123,134]
#2、创建画布
#3、绘制直方图
distance = 2
group_num=max(time)-min(time))//distance# // 取整数 或者用 int()
plt.hist(time,bins=group_num,density=True)
#bins x轴怎么分区间
#density：y轴是否显示占比
#修改x轴刻度
plt.xticks(range(min(time),max(time),distance))
#添加网格显示

#五、饼状图：占比 数据类别超过9个不建议用太多了
#1、准备数据
movie_name=['雷神3','正义联盟','东方快车谋杀案']
place_count=[60560,24324,5698]
#2、创建画布
plt.figure(figsize=(20,8),dpi=80)
#3、绘制饼图
plt.pie(place_count,labels=movie_name,colors=['r','g','y'],autopct='%1.2f%%')
#autopct 百分比现实
#不让饼状图不规则
plt.axis('equal')
#显示图列
plt.legend()
#4、显示图像


# 后续系靠
用 plt.annotate 方法 添加图表注释 
